maybe I shouldn't check if an uninitialized value is null.