Add initial go code. all kinds of broken right now, feel free to poke.