added maximum and predecessor methods