conditional Observer support added.