add data structure abstractions