created challenge creation with authorization and basic state_machine implementation