I have put too much code into the same files.
Also, I put everything into the same package: main.
This package is only meant for executables.
Therefore, I have refactored my code to use multiple packages. These packages also guarantee separation of concerns since Golang doesn't allow cyclic imports.