add solution from oafridi