added basic go implementation