create on_metadata callback for each source instead of once on unified source