refactor change and i18n support