closes #58
closes #62
closes #49