~ new sytle, use printf instead of snprintf+cout