immutable DTOs + better method names