defined some of the core classes