move magic/array adaptors out of viewmodel