more data structures and operations