rewrote everything using quasiquoting and groundhog