Finished refactoring, finally can go ahead