add class structure & add many function