Implementation part evolved
Corrections