code clean, tests
code clean, tests