closes #223
closes #224
closes #226
closes #226
closes #227