small improve by goto