better printf, bug not fixed