refactored updating of observables, added new fields