now checks for source if required.