moving the data structures to be their own thing too