Basic design implementation
Fix tests
Merge pull request #13 from seniorihor/user_interface

User interface