updated to modern go