aps builder pattern