added data struture