refactoring on project structure and extracted classes in singular files. in general changes for a cleaner architecture.