initial go conversion
ignore goskel sytuff;