just realised.
the algorithm I'm using is all wrong.
or at least it seems to be...

drill, indeed.
that's my point for suggesting something like this.