added original change2 implementation