added support for precision argument