some small modification