refactored ImmutableList to List for cleaner syntax, added comments