How extendable is vehicle system of UE4 ?

I just finished reading these classes:

AWheeledVehicle
AWheeledVehicleMovementComponent
AWheeledVehicleMovementComponent4W

I’v read codes of racing game sample in market place too. I have serious doubts about the whole vehicle system. *AWheeledVehicle *was too small and the whole system is dependent on implementation of WheeledVehicleMovementComponent, It was a big and somehow complicated class, but a key virtual has remained unimplemented : SetupVehicle, without this function the whole Implementation is useless, so I looked at *AWheeledVehicleMovementComponent4W *and found a horrifying, long, unfamiliar and Physx related stuff there, (the rest of the class was a detailed abstraction of a 4Wheel vehicle which looked pretty awesome). It seems to me that other than building 4W vehicles on top of these codes, writhing other kinds of vehicles like motorcycles or tank are not possible (or very hard) using these classes (Since *SetupVehicle *must get overridden and this requires some level of (if not deep) knowledge about physics core of engine).

So what do you suggest to me if I tell you I want to make a tank, motorcycle or a snowmobile? Is it worth dealing with Physx or is it better to simulate it using constrains and sockets? Or maybe I get it all wrong?

Personally I’m programming my own vehicle physics depending on what kind of vehicle I want. It just feeds forces and velocities etc into the PhysX system.

Not a huge fan of the way vehicles are implemented right now, they seem very niche towards certain types of vehicles. If you want to create something a bit more abstract, you can often fudge the vehicle system, but it still feels a bit flaky.