add #insert and it's tests (not completed yet).