closes #5. Implemented