Building a dispatcher agnostic view-model