lots of fixes and implementations