Implements builder pattern.