closes #57, closes #76