Refactor insertion templates into separate functions
Add `do' notation template