separated mutable and immutable container