major Semantic refactor