adds cancel functionality that rollbacks eventual changes
adds rollback when route changes and model is dirty