add insert method
add algorithm description