This is a bit of a mess.  I agree with @peabody124 here.  If you have any hope of switching between path followers at runtime, you need a strategy for how to handle that transition.  Until you have that strategy, these should all be separate modules that deal with exactly one vehicle type.

If you're going to switch between path followers at runtime, you've got a lot to sort out.  Things like: How will you initialize the new follower as you hand off to it?  If each follower is as unique as you've indicated @kubark42 then it seems wise to expect them to require different UAVOs to be initialized.

I would suggest revisiting the idea of the runtime hand-off as an entirely separate design discussion ahead of implementing it.  In the context of this PR though, I think you should split each follower out to a separate module.

You're putting the Dubins cart before the horse here :)