added ProducerDefinition annotation and created tasks subsystem