private IEnumerable <ICodePart> Visit(MethodDeclarationSyntax node)
        {
            var method = SyntaxCodePart.Create <Method>(node, _model);

            method.Declaration = node;
            yield return(method);
        }
        private IEnumerable <ICodePart> Visit(ClassDeclarationSyntax node)
        {
            var cls = SyntaxCodePart.Create <Class>(node, _model);

            cls.Children = node.ChildNodes().SelectMany(Visit).Where(c => c != null).ToList();
            yield return(cls);
        }
        private IEnumerable <ICodePart> Visit(PropertyDeclarationSyntax node)
        {
            //TODO: temporary removal
            if (node.ExplicitInterfaceSpecifier != null)
            {
                yield return(null);
            }

            yield return(SyntaxCodePart.Create <Property>(node, _model));
        }