add c# implementation