Refactor assembly to use builder pattern