Finished version 1 of Observer API