Merge !23 (merged), !24 (merged), !25 (merged) into main Closes #34 (closed) , #40 (closed), #57 (closed)