add logging and str_util