added Observer type and updated Contract to process it