Why are your freeing the bus here? Wouldn't that have to be done on exit? (all 3 exits paths actually?)