make little efficient for dsift