almost finished with new data structures