Added missing filename property
Implemented Observer
implement Proxy