think of various corner cases that have come up - [ ] distance matching correctly discards some objects - [ ] shape of matched array is correct? (self.max_n_sources)