Added support for enums and inheritence. Added extension methods to simplify procedures
injection refactoring
less verbose tostring