First stab at the solution