added the ability to provide your own challenge