revamped entire data structures
update