generalized sourceFactory form FileSource to Source

there should be nothing blocking this pull