Added functions for predecessor, etc