added and refactored tests
added tests