ok i think i can actually use yesod to build this