private static string GetName(Expression exp)
{
var split = exp.ToString().Split('.');
var pieces =
split.Reverse().Skip(1)
.Where(x=>!x.Contains("("))
.TakeWhile(x=>!x.Contains(")"));
var asArray = (new[] {split.Last()}.Union(pieces)).Reverse().ToArray();
return string.Join(".", asArray);
}