Made some self-specified modification to this repo