On Building a Fault-Tolerant Quantum Computer