Closes #21 final