lots of changes, see CHANGES