rebuilding piece by piece