figuring out better data structure