unless there's reason to make this mutable, prefer final