Support multiple source types