Split out the code for making a new puzzle set into a separate subroutine, and do not add user cache entries for them until they are loaded the first time.