some small modification, useless