finally understand many to many