Viper template: adds Interactor, Presenter, and View protocol