refactoring done, added interface class
changelog