Rest call refactor to be contained inside of an object

This in preparation for models.

The rest call is too tight coupled to the ViewModel and should be containable in a Model. This also allows us to push an entire model over and avoid multiple calls for an object we already have in memory.

An other advantage is to have all attributes synced.