Added support for virtual properties
Virtuals can now be set in the constructor