Add more flexibility on source type