refactor utils into own modules, etc...