big commit, can't be bothered to write a proper message. closes #178, closes #179, closes #180, closes #181, closes #183, closes #184, closes #185, closes #186, closes #187, refs #78