better entity structure