if destination is already present, merge source and destination values into a list; also add basic filtering support