put-key accessor creates object if necessary