There is yet another option that is very elegant for the end user, but requires more work on your end.

If you create a nested class/struct within your class that represents the second dimension of...