Setup function refactor
Modify update functions to use new observer pattern implementation