I have a few classes in Library1: Class A, Class B, etc. that are used by classes above. 

```
public class A 
{  
    int VarA1;  
}

public class B
{  
    List<A> SetA {get; set; }
    void MethodB1()
    {
            ...
            this.SetA = new List<A>;
            ...
    }
}

```

Now I want to have an interface for that Library1, so there can be other implementations. Calling the interface library ILibrary: 

```
public interface IA
{  
    int VarA1 {get; set; }  
}

public interface IB
{  
    List<IA> SetA { get; set; }
    void MethodB1();
}

```

which are being implemented in Library1:

```
public class A : IA
{  
    int VarA1{ get; set; }  
}

public class B : IB
{  
    List<IA> SetA {get; set; }
    void MethodB1()
    {
            ...
            this.SetA = new List<A>;
            ...
    }
}

```

But I am getting a compilation error with this code: 

> 
> Library1.B.SetA cannot implement ILibrary.IB.SetA because it does not have a matching return type.
> 
> 
> 

I also tried: 

```
public class B : IB
{  
    List<A> SetA {get; set; }
    void MethodB1()
    {
            ...
            this.SetA = new List<A>;
            ...
    }
}

```

But that didn't resolve the issue (same error message). Why is this giving this error and how can I resolve it?