rfactored so DB updates done by idenepdendent Observer