adding some classes and structure