add source selection
modify old default-value preference implementation