change 'start' to 'offset' and add more comments