improve 3 solutions