added tests and description