move all prepare() implementation to AbstractWeakformAssemblier