update implement data struct