Fully implemented the DataObserverAdapter
Simplified DataObserverAdapter by using expansion methods and a proxy