go implementation.