big refactoring, usage of the new interface