Class cannot be final as I need to subclass it