add observer pattern to dp note