Index: src/SynTree/Declaration.h
===================================================================
--- src/SynTree/Declaration.h	(revision 92360603d942184e66e5f92706ecc75c6b04f121)
+++ src/SynTree/Declaration.h	(revision b37dba01720427bc6246805fb6bb003461bdb094)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Andrew Beach
-// Last Modified On : Wed Aug  9 14:45:00 2017
-// Update Count     : 126
+// Last Modified On : Mon Aug 14 10:15:00 2017
+// Update Count     : 128
 //
 
@@ -269,7 +269,6 @@
 	typedef AggregateDecl Parent;
   public:
-	StructDecl( const std::string &name, DeclarationNode::Aggregate kind = DeclarationNode::Struct, const std::list< Attribute * > & attributes = std::list< class Attribute * >(), LinkageSpec::Spec linkage = LinkageSpec::Cforall ) : Parent( name, attributes, linkage ), kind( kind ), tagged( false ), parent_name( "" ) {}
-	StructDecl( const std::string &name, const std::string *parent, const std::list< Attribute * > & attributes = std::list< class Attribute * >(), LinkageSpec::Spec linkage = LinkageSpec::Cforall ) : Parent( name, attributes, linkage ), kind( DeclarationNode::Struct ), tagged( true ), parent_name( parent ? *parent : "" ) {}
-	StructDecl( const StructDecl &other ) : Parent( other ) {}
+	StructDecl( const std::string &name, DeclarationNode::Aggregate kind = DeclarationNode::Struct, const std::list< Attribute * > & attributes = std::list< class Attribute * >(), LinkageSpec::Spec linkage = LinkageSpec::Cforall ) : Parent( name, attributes, linkage ), kind( kind ) {}
+	StructDecl( const StructDecl &other ) : Parent( other ), kind( other.kind ) {}
 
 	bool is_coroutine() { return kind == DeclarationNode::Coroutine; }
@@ -277,10 +276,4 @@
 	bool is_thread() { return kind == DeclarationNode::Thread; }
 
-	// Tagged/Tree Structure Excetion
-	bool get_tagged() { return tagged; }
-	void set_tagged( bool newValue ) { tagged = newValue; }
-	bool has_parent() { return parent_name != ""; }
-	std::string get_parentName() { return parent_name; }
-
 	virtual StructDecl *clone() const { return new StructDecl( *this ); }
 	virtual void accept( Visitor &v ) { v.visit( this ); }
@@ -289,7 +282,4 @@
 	DeclarationNode::Aggregate kind;
 	virtual std::string typeString() const;
-
-	bool tagged;
-	std::string parent_name;
 };
 
@@ -323,5 +313,5 @@
 	typedef AggregateDecl Parent;
   public:
-	TraitDecl( const std::string &name, const std::list< Attribute * > & attributes ) : Parent( name ) {
+	TraitDecl( const std::string &name, const std::list< Attribute * > & attributes, LinkageSpec::Spec linkage ) : Parent( name, attributes, linkage ) {
 		assertf( attributes.empty(), "attribute unsupported for traits" );
 	}
