various changes, see difflog for details!