implemented all the straightforward tests