What does "use" mean here? (I would expect terminology like "expand" or "contribute"). Also, it feels like "result" should be the last parameter and should be named something like "proposals" (based on the javadoc at least). Given that it's passed in and may be non-empty at that point, it's really a preexisting collection that this method may add elements to; and other methods could also add more after, so it's not really a *result* yet, right?