add category logic, add i18n support, improve framework