Building a custom avatar system

I'm just wondering if anyone knows what's the best way to build custom avatars.  Here's my idea:

  1. Create a base model with skeletal animation, and name all the joints properly
  2. Have a library of static meshes (head, legs, etc.)
  3. Dynamically attach the static meshes to the base model, based on user selection

    The above works well for things like a hat or a sword, but I'm wondering if it also works for head or torso.

    Am I on the right track or are there better ways to handle it?