make all types immutable