fixed predecessor and search methods