ticket:1 basic UI
ticket:1 tests
ticket:1 working version