improvements on Go