Partial refactor - immutability, naming (need to fix non-repeatable entity regression)