expanding documentation

adding illustration, fully expanding on how to write observers