separating foreign key and m2m updates / saving