made the builder more secure by implementing a new interface