closes #26, closes #33