Added GenericPipe pattern