refactored updating of observables, added new fields

I am half asleep so I have no idea if any of this makes sense but it works on my end.
all of this could also be done as a loop. Seems like a global array of observable keys would be useful as I'm seeing them repeat themselves twice and now possibly thrice