Implement Data, Producer and Consumer interfaces

Implement Data, Producer and Consumer interfaces. Add
InvalidComplexityException