__toString magic method requires sprintf to be called