added a lot of challenge stuff