added a RelayCommand class to facilitate working with commands