better code structure for i18n