Some methods were pulled out of AvatarData and put into AvatarBase, which has a couple pure-virtual functions.  AvatarData now derives from AvatarBase and overrides the toByteArray() and fromByteArray() methods.