several things, read the diff