this is for the data structure learning