refactor curtain, now depends on notification