allow stringify to be overloaded