answerSelected a s | a /= correctAnswer s && attemptsRemaining s > 1 = s {
      answerButtonModes = replaceAtSameIndex a (allAnswers s) IncorrectDisactivated (answerButtonModes s),
      attemptsRemaining = attemptsRemaining s - 1,
      scoreMap = insert (currentConfig s) newSpecificMap (scoreMap s)
      }
      where newSpecificMap = markIncorrect a (correctAnswer s)$ findWithDefault empty (currentConfig s) (scoreMap s)
answerSelected a s | a /= correctAnswer s && attemptsRemaining s > 1 = s {
      answerButtonModes = replaceAtSameIndex a (allAnswers s) IncorrectDisactivated (answerButtonModes s),
      attemptsRemaining = attemptsRemaining s - 1,
      scoreMap = insert (currentConfig s) newSpecificMap (scoreMap s)
      }
      where newSpecificMap = markIncorrect a (correctAnswer s)$ findWithDefault empty (currentConfig s) (scoreMap s)
answerSelected a s | a /= correctAnswer s && attemptsRemaining s > 1 = s {
      answerButtonModes = replaceAtSameIndex a (allAnswers s) IncorrectDisactivated (answerButtonModes s),
      attemptsRemaining = attemptsRemaining s - 1,
      scoreMap = insert (currentConfig s) newSpecificMap (scoreMap s)
      }
      where newSpecificMap = markIncorrect a (correctAnswer s)$ findWithDefault empty (currentConfig s) (scoreMap s)