use vprintf for variable args