refer others' code, ERROR REASON: think for granted