added insert method
merge with add_insertion_method branch