Also added a couple of tests to reach full test coverage for all core operations.
Closes: #285 (closed) #284 (closed) #281 (closed)
Branched from !469 (merged) so merge that first, I can then rebase if you want to.