working on new observer