new tests
code style refactoring
new tests
new tests and code style changes