commands in separate static class, utilize state for CanExecute