add explanation for data structure