Flyttat runt logiken lite och använder observers.