i don't know if booleans work cause can't imagine it right now, but its a possibility. your second option with polys is you have to model it till it fits and then merge verts or sth like that.