Language refactoring Part I