improve call tree
q5.13 -- dynamic register allocation