I don't like all these nulls. I think we need another constructor.