Really big clean up change and fullsupport of observe