implement differences