add insert method and some methods block changed