Implement Challenge class and tests