add a bunch of commentary for the child functions.