puzzle compiler