closes #2 and closes #3