Error correction, some refactoring