Implement Corruption, with tests