refactoring
added unit tests