add challenge_info struct
add Challenge Class