added has_and_belongs_to_many feature