closes #59
closes #58
closes #54