big improvements, see ChangeLog