WIP; add missing observer functions