working on manytomany
this needs some restructuring