made Observer module internal