added proper comments