closes #16, closes #17