Fix uniqueness issue.  Don't use sets... elements are mutable, and the docs for ImmutableSet says using a set with mutable objects is dangerous.  Thus, only use when it is not being stored.  Also, use ImmutableList instead of List.