skip tail recursion
move chapter list into cmake proper