cleanup and lots of new features. way too many to document :-P