I find your proposal a little confusing. By turning the string into an object, it doesn't work with printf? I'm also not sure it's a good idea to make this more powerful. As a simple "replace the string with a tuple" its very easy to understand.