minor: Any reason why ArrayList is used specifically here?  And related why isn't guava Lists.* helpers being used?  That is the direction the rest of the codebase is heading, not sure why this is any different.