restructuring of the project and new abstraction layers