removed unneeded ;
pass along more information to immutable calculation