TODO: Add more error correction