Allow subclassed CompositeHandlers to return the correct types by extending AbstractCompositeHandler