slight change in header from 'source' to 'sourceLoc' to preven confusion with 'source' function