Challenge

Updated pull request
Consider moving all of this "attempts" logic into a model (e.g. the Level model).