some boilerplate stuff mostly, next need to figure out i18n...