Refactoring to enable other languages.