make m2m optional