Adding abstract classes stuff, very broken..........