How to refactor the following code without killing OOPS in C#
<p>I have 3 interfaces with 2 methods each doing the same job.</p>

<pre><code>Interface A
{
   Void M1()
   Void M2()
}

Interface B
{
   Void M1()
   Void M2()
}

Interface C
{
   Void M1()
   Void M2()
}
</code></pre>

<p>Now, There are 3 classes implementing each of these interfaces.</p>

<pre><code>Public Class A1:A
{
  Public void M1()
  {

  }
  Public void M2()
  {

  }
}

Public Class B1:B
{
  Public void M1()
  {

  }
  Public void M2()
  {

  }
}

Public Class C1:C
{
  Public void M1()
  {

  }
  Public void M2()
  {

  }
}
</code></pre>

<p>Functionality of M1 and M2 is exactly same in 3 classes. Interfaces are a part of library, I cannot change the interface and also cannot declare a new interface.</p>

<p>I want to refactor this code so that this duplication can be removed. I thought of creating a common class containing this functionality and then calling common class from each of these classes. </p>

<p>Please suggest.</p>
