big commit, can't be bothered to write a proper message. closes #252, closes #253, closes #254, closes #255, closes #257, closes #258, closes #259, closes #260, closes #261, refs #79