final doesnt branch correctly