build a meta box to select child pages of current page

I just begin to work with metabox.
I am able to add a metabox to pages in WP admin.
In this metabox, I need to:
1/display the list of all child pages of the page the user is currently editing, is possible using a tree
2/select pages in this tree, and if possible, by checking an item, sub items should also be checked
3/save the checked pages as metadata of the current page
Which pre built WP functions are best suited for each point?