ticket:6 tests
ticket:6 implementation