improve puzzle integration