add more toString functions and make the uniform