Refactor Semantic