Separated challenges and refactored library.