Towards Self-Correcting Quantum Memories