could/should return by reference to avoid reference counting