CodeFellows assignment (but upgraded)