not a big fan of hanging this off of `Webapp`. seems like something that could live in `mkt.webapps.utils`.