register the correct observer