added 3 solutions