add tests and some of the dict api