switched to `ImmutableList` throughout. changed `Iterable` for `List`, since order matters.