ticket:3 tests
ticket:3 implementation
ticket:3 removing unnecessary files