Mutable and immutable separation and better scalable tests