SemGen Refactor

SemGen Refactor by Chris up to 9/17/14