handle source-add and source-remove