Here is an illustration of your first import cycle problem.
project/controllers/account ^ \ / \ / \ / \/ project/components/mux <--- project/controllers/base
As you can see with my bad ASCII chart, you are creating an import cycle when project/components/mux
imports project/controllers/account
. Since Go does not support circular dependencies you get the import cycle not allowed
error during compile time.