classes are now reference types

classes can be allocated with 'new'
function types composition is now deferred to decide type of 'this'
'this' is now passes as a pointer for structs, and reference for classes (essentially a pointer)
'this' is now immutable

TODO fix delete
TODO fix function pointers