modify comments and add return val