Added core classes

Basic abstract