allow null instances, but with seperate factory method only