removed interface
refactoring main classes
test new functions