full handling of empty values