revise for not null default empty string