added initial insert implementation