work in progress new data structure