Seperate a Generator for interface/implementation and for the others
reasons