subclassing will now work properly