adding tests and comments