Architecture for viewmodels

Sorry if this question is slightly ambiguous, but I am quite stumped. I am developing a first person shooter, and I am wondering how I should go about rigging the weapon to the viewmodel, on the client side.

The issue I’m facing is that I cannot decide how to connect the viewmodel and the weapon.

Do I Motor6D the weapon to the respective arm?
Do I Motor6D the weapon to the camera part?
Do I do something else entirely?

I’m not sure what is considered best practice.

your best bet would be to clone the arms and the gun