added tests and todo