Looks nice I think, it's easy too see what's going on. Am I right in that the garbage collector will take care of this temp vector from my Location-function? (I don't put the vectors in a list)
ooh good point. Now THERE is a concrete advantage of Garbage collection. In B3D you couldn't just create types instances like that without having to worry about clearing them up.
So for something like this you just need a Vectorise:Vector(X,Y) function which simply returns a new temp vector.