Moved profile challenges logic to model