Author: IIT Roorkee July 2018