Creating the core classes