fourth version : it finally seems that every thing is OK T___T