added equals. not tested.