Implement Observer && Minor fixes
Implement Observer && Minor fixes