More OO approach... extension class + plugins