added class-level comment and changed source to source.substring(start,end)