Pre try reimplementing using System.ServiceModel