diff --git a/OSCADSharp/OSCADSharp/OSCADObject.cs b/OSCADSharp/OSCADSharp/OSCADObject.cs
index 7f77cb3..35a16a7 100644
--- a/OSCADSharp/OSCADSharp/OSCADObject.cs
+++ b/OSCADSharp/OSCADSharp/OSCADObject.cs
@@ -238,26 +238,18 @@ namespace OSCADSharp
///
public OSCADObject Mimic(OSCADObject other)
{
- IEnumerable children = other.Children();
- Stack stack = new Stack();
OSCADObject finalObject = this;
- stack.Push(other);
- foreach (var child in children)
- {
- stack.Push(child);
- }
+ Stack toTraverse = new Stack();
+ toTraverse.Push(other);
+ other.Children().ToList().ForEach(child => toTraverse.Push(child));
- while(stack.Count > 0)
+ while(toTraverse.Count > 0)
{
- var current = stack.Pop();
- if(!(current is IMimic))
+ var current = toTraverse.Pop() as IMimic;
+ if(current != null)
{
- continue;
- }
- else
- {
- finalObject = ((IMimic)current).MimicObject(finalObject);
+ finalObject = current.MimicObject(finalObject);
}
}