Added a few classes including an AbstractClass that implements core
functions