moved code into widgets and added i18n