Hi @n.rawitscher954,

You to â€śaddâ€ť methods to existing types without creating a new derived ones with Extension Methods. For example, here is an extension method that extends the `Vector3d`

struct:

```
public static class ExtensionMethods
{
/// <summary>
/// Returns the triple product.
/// The scalar triple product (also called the mixed product, box product, or triple scalar product)
/// is defined as the dot product of one of the vectors with the cross product of the other two.
/// </summary>
/// <param name="a">This vector.</param>
/// <param name="b">The second vector.</param>
/// <param name="c">The third vector.</param>
/// <returns>The triple product.</returns>
public static double TripleProduct(this Vector3d a, Vector3d b, Vector3d c)
{
return a.X *
(b.Y * c.Z - b.Z * c.Y) + a.Y *
(b.Z * c.X - b.X * c.Z) + a.Z *
(b.X * c.Y - b.Y * c.X);
}
}
```

Keep on mind that Extension Methods are a special kind of static method - they are called as if they were instance methods on the extended type. Thus, they donâ€™t actually modify the base object they are extending. Thus, any extension method you create will only be useable by use, unless you provide this method in a sharable assembly.

Does this help?

â€“ Dale