Improved error handling to restore the model to it's previous state if validation failes
refactored delete to be a single reused view
refactored views to use super classes
refactored results to use super class