Add functionality in model, refactor view and add notifications