getting close
add more useful toString, test union
fix union. descending... still broken