insert function updated