still working on getting data structures right