Added more structure and classes