added more comments
added link_iter_free wrapper
refactored code
fixed up iterator init