solving a puzzle