diff --git a/unreal-sdk/src/sdk/process.rs b/unreal-sdk/src/sdk/process.rs
index c539ead..f43bc80 100644
--- a/unreal-sdk/src/sdk/process.rs
+++ b/unreal-sdk/src/sdk/process.rs
@@ -246,7 +246,7 @@ impl Class {
                     override_name: Some(format!("{}{}", field.name, n)),
                     ..field
                 },
-                |field: &ClassField| -> String { field.name.clone() },
+                |field: &ClassField| -> String { field.unique_name().to_string() },
             )
             .collect();
 
@@ -257,7 +257,7 @@ impl Class {
                     override_name: Some(format!("{}{}", field.name, n)),
                     ..field
                 },
-                |field: &ClassMethod| -> String { field.name.clone() },
+                |field: &ClassMethod| -> String { field.unique_name().to_string() },
             )
             .collect();
 
@@ -320,7 +320,7 @@ impl ClassMethod {
                     override_name: Some(format!("{}{}", field.name, n)),
                     ..field
                 },
-                |field: &ClassField| -> String { field.name.clone() },
+                |field: &ClassField| -> String { field.unique_name().to_string() },
             )
             .collect();
 
@@ -346,6 +346,12 @@ impl Package {
         let types = self
             .children
             .par_iter()
+            // filter out anon or default objects
+            .filter(|obj| {
+                obj.get_name()
+                    .map(|name| !default_or_anon(&name))
+                    .unwrap_or(false)
+            })
             .filter_map(|&object| -> Option<UnrealType> {
                 let ty = match AnyObject::from_object(object) {
                     AnyObject::Field(field) => match AnyField::from_field(field) {