Add settings viewmodel, closes #29