Move code generation to separate generator service