various changes and improvments for go