Refactor to be more like django CBVs