done though with some small changes please take a look