add insert functionality