implement new printf