Features are a feature of AbstractTable's not TableInterfaces, so no need to check for TableGatewayInterface.  Additionally, AbstractFeature objects are already AbstractTableGateways themselves (so they can share object state without having a public API with the actual TableGateway object).  So I don't think this check is needed here.