add three versions of Adapter written in C#