These final should be final if this changes to the builder pattern.