please add as comments on the function