the intermediate observer implementation