Fixed constructors, added virtual methods for the interface.