Feature abstract objects into master

First check pull request #1 

Create Abstract objects, as well as the normal objects, that extend these Abstract objects.
This should be better to apply future updates and force people to use the AbstractObjects and Objects structure