Set up viewmodels and callbacks