some new data structures