too many changes to list, some new things, and a lot of minor cleanup