In my domain model I have an Entity object that looks as follows:

```
public class Group
{
    public int idGroup { get; set; }
    public string Description { get; set; }
}

```

I have a repository for this object:

```
public class GroupRepository : IGroupRepository
{
    public Group LoadGroup(int idGroup)
    {
        //imitation of SQL data reader
        Group g = new Group();
        g.idGroup = Convert.ToInt32(r["idTipoGrupo"]);
        g.Description = Convert.ToString(r["Descricao"]);
        return g;
    }
}

```

But now I need to get some extra information from data store about Group objects through a new function in my created repository, here are the fields I need:

```
public bool HasChildGroups { get; set; }
public int ChildGroupsCount { get; set; }
public bool HasDeals { get; set; }
public int DealsCount { get; set; }

```

These properties look to me like a "service" or "helper" properties and I don't plan to use them everywhere in my application, only few times, but I need them. The simplest thing I could think of is that I added these "service" properties to my Group object and created a method in my repository that populates them. But I consider doing this wrong, as it is the Entity and I don't need them in here. So where should I keep such "service" objects? Do I have to create a new class that inherits from `Group` like this:

```
public class GroupHelper : Group
{
    public bool HasChildGroups { get; set; }
    public int ChildGroupsCount { get; set; }
    public bool HasDeals { get; set; }
    public int DealsCount { get; set; }
}

```

Or should I consider using some Data Transfer Objects?
How would you solve this problem?
Any help appreciated.