final refactor, better to use a module and only use strings