... and a set of tests for them. Note that the tests include some TODOs, these will be handled in the following commits.