Generic types are now supported
Renaming/refactoring a few things
Adding support for member initialisers