Index: src/CodeGen/CodeGenerator.cc
===================================================================
--- src/CodeGen/CodeGenerator.cc	(revision da9d79b89f56b94354f0c827fba6fb3a35e61bce)
+++ src/CodeGen/CodeGenerator.cc	(revision 42107b41a887b7888f179ea48e8f6e41ba1607d8)
@@ -1145,13 +1145,4 @@
 unsigned Indenter::tabsize = 2;
 
-std::ostream & operator<<( std::ostream & out, const BaseSyntaxNode * node ) {
-	if ( node ) {
-		node->print( out );
-	} else {
-		out << "nullptr";
-	}
-	return out;
-}
-
 // Local Variables: //
 // tab-width: 4 //
Index: src/CodeGen/FixMain.cc
===================================================================
--- src/CodeGen/FixMain.cc	(revision da9d79b89f56b94354f0c827fba6fb3a35e61bce)
+++ src/CodeGen/FixMain.cc	(revision 42107b41a887b7888f179ea48e8f6e41ba1607d8)
@@ -29,5 +29,5 @@
 namespace CodeGen {
 	bool FixMain::replace_main = false;
-	std::unique_ptr<FunctionDecl> FixMain::main_signature = nullptr;
+	FunctionDecl* FixMain::main_signature = nullptr;
 
 	template<typename container>
@@ -41,5 +41,5 @@
 			SemanticError(functionDecl, "Multiple definition of main routine\n");
 		}
-		main_signature.reset( functionDecl->clone() );
+		main_signature = functionDecl;
 	}
 
Index: src/CodeGen/FixMain.h
===================================================================
--- src/CodeGen/FixMain.h	(revision da9d79b89f56b94354f0c827fba6fb3a35e61bce)
+++ src/CodeGen/FixMain.h	(revision 42107b41a887b7888f179ea48e8f6e41ba1607d8)
@@ -40,5 +40,5 @@
 	  private:
   		static bool replace_main;
-		static std::unique_ptr<FunctionDecl> main_signature;
+		static FunctionDecl* main_signature;
 	};
 };
Index: src/CodeGen/FixNames.cc
===================================================================
--- src/CodeGen/FixNames.cc	(revision da9d79b89f56b94354f0c827fba6fb3a35e61bce)
+++ src/CodeGen/FixNames.cc	(revision 42107b41a887b7888f179ea48e8f6e41ba1607d8)
@@ -16,5 +16,4 @@
 #include "FixNames.h"
 
-#include <memory>                  // for unique_ptr
 #include <string>                  // for string, operator!=, operator==
 
@@ -47,12 +46,12 @@
 	std::string mangle_main() {
 		FunctionType* main_type;
-		std::unique_ptr<FunctionDecl> mainDecl { new FunctionDecl( "main", Type::StorageClasses(), LinkageSpec::Cforall,
-																   main_type = new FunctionType( Type::Qualifiers(), true ), nullptr )
-				};
+		FunctionDecl* mainDecl = new FunctionDecl{ 
+			"main", Type::StorageClasses(), LinkageSpec::Cforall, 
+			main_type = new FunctionType{ Type::Qualifiers(), true }, nullptr };
 		main_type->get_returnVals().push_back(
 			new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
 		);
 
-		auto && name = SymTab::Mangler::mangle( mainDecl.get() );
+		auto && name = SymTab::Mangler::mangle( mainDecl );
 		// std::cerr << name << std::endl;
 		return name;
@@ -60,7 +59,7 @@
 	std::string mangle_main_args() {
 		FunctionType* main_type;
-		std::unique_ptr<FunctionDecl> mainDecl { new FunctionDecl( "main", Type::StorageClasses(), LinkageSpec::Cforall,
-																   main_type = new FunctionType( Type::Qualifiers(), false ), nullptr )
-				};
+		FunctionDecl* mainDecl = new FunctionDecl{
+			"main", Type::StorageClasses(), LinkageSpec::Cforall,
+			main_type = new FunctionType{ Type::Qualifiers(), false }, nullptr };
 		main_type->get_returnVals().push_back(
 			new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
@@ -77,5 +76,5 @@
 		);
 
-		auto&& name = SymTab::Mangler::mangle( mainDecl.get() );
+		auto&& name = SymTab::Mangler::mangle( mainDecl );
 		// std::cerr << name << std::endl;
 		return name;
Index: src/CodeGen/Generate.cc
===================================================================
--- src/CodeGen/Generate.cc	(revision da9d79b89f56b94354f0c827fba6fb3a35e61bce)
+++ src/CodeGen/Generate.cc	(revision 42107b41a887b7888f179ea48e8f6e41ba1607d8)
@@ -41,5 +41,5 @@
 		void cleanTree( std::list< Declaration * > & translationUnit ) {
 			PassVisitor<TreeCleaner> cleaner;
-			filter( translationUnit, [](Declaration * decl) { return TreeCleaner::shouldClean(decl); }, false );
+			filter( translationUnit, [](Declaration * decl) { return TreeCleaner::shouldClean(decl); } );
 			mutateAll( translationUnit, cleaner );
 		} // cleanTree
@@ -79,5 +79,5 @@
 				}
 				return false;
-			}, false );
+			} );
 		}
 
@@ -85,5 +85,4 @@
 			Statement * callStmt = nullptr;
 			std::swap( stmt->callStmt, callStmt );
-			delete stmt;
 			return callStmt;
 		}
