removed Eq+Ord trait requirements