Updated source handlers to share selection logic