public override void VisitPropertyDeclaration(PropertyDeclarationSyntax node)
        {
            // todo: ensure this is same visibility
              var z = model.GetDeclaredSymbol(node);

              var builder = tcb.GetBuilderFor(z.DeclaredAccessibility);

              builder.AppendWithIndent("__declspec(property(");
              CodeBuilder getBuilder = null;
              if (z.GetMethod != null)
              {
            builder.Append("get=Get").Append(z.Name);

            getBuilder = new CodeBuilder(builder.IndentValue);
            getBuilder.AppendWithIndent(z.Type.ToCppType())
              .Append("& ") // this is rather opinionated :) might rethink later
              .Append("Get")
              .Append(z.Name)
              .AppendLine("() const;");
              }
              if (z.SetMethod != null)
              {
            if (z.GetMethod != null) builder.Append(",");
            builder.Append("put=Set").Append(z.Name);
              }

              builder.Append(")) ")
            .Append(z.Type.ToCppType())
            .Append(" ")
            .Append(z.Name)
            .AppendLine(";");

              if (getBuilder != null)
            builder.Append(getBuilder.ToString());
        }