puzzle almost solved!