added extra data structures