added dataconsumer interface