added push and pop to viewmodels for shell exchange