fix bug, add test

For Observer