added comments above every method