aiming for 10 commits
implement error handling