added proper commenting system