Added enum with different challenge types
Added a simple Challenge factory