- Adding some hierarchy,  cleaning the code