Finalized builder pattern, with builder interface, concrete builder class and director class