reimplementing how a producer works
further improvements
now emulates producers better