try to support nagative number