added tests and comments