Implement create challenge use case and associated spec