Work in progress major refactoring
Testing Go, seems a lot easier