Minimize duplication

Initiative to separate the implementation specific code generators in order to minimize logic duplication.