Rewrote most of the project in Go