closes #87
closes #90
closes #84
closes #88
#85