use immutable collections for holding instance details