lots of fixes and fleshing out features