settled on using a viewmodel system for now.