works for large number