closes #4; closes #26