closes #212, closes #227
closes #228, closes #199