Refactored for the ground work on many-to-many association.