support objects with blank string primary keys