many minor changes have happened! and I'm not going to tell about them)