Split interface into producer and consumer view