Closes #21 Closes #22