Aspects of Fault-Tolerant Quantum Computation