Using the builder pattern with subclasses