add is_blank, vsprintf