use class based views where possible