#232 update feature detection + safe observer registration