completely change the idea behind the data structures. This simplified
code *a lot*.