add one solution; improve 2 solutions