Still needs toString and compare methods