added a bunch of tests and covers annotations