core: purify builder