added necessary comments