ticket:4 tests
ticket:4 implemetation