build from list should recurse