solution
another solution
cleaning up
updated desc