improve
improve with golang