allow branches to return values