Reformat code to get a better structure
Reformat code and added some new packages and classes
Configured pom.xml