adding better implementation of itoa