Split out AbstractBuilder and rename it