Consider reimplementing dfo as an MVC app