Observer first working version
Observer is done with the least requirement