Update closes #6, closes #2 and closes #7