Start go implementation
Tidy up