added NotNullOrEmpty