looks Line 87 ~ 98 is only used for `copyBuildingBlock()`, we should move it to here.