added tests and TODOs