Rewritten challengeModel and connected classes, fixes #12