add equals
add toString