added observer package + couple of interfaces