hmm, ifNonEmpty is already defined to ignore null, is this necessary?