re-implement insert
re-implement insert