Semantic refactor, inactive mains works for 2+