ensure that we call .build() only one time