move extension class out of decorator to allow subclassing directly