fixed observer, added observer tests