allow overriding preassemble method