* This needs some optimisation - the obvious one being to batch up requests for multiple children all at once.