use ImmutableList and ImmutableMap to replace List and Map in factory.