Use pubsub to decouple parents from children

- Use a pubsub system to subscribe and publish update event from children to root.
- No longer use path class, each wrapper instead stores the whole path array