Если вам интересно мое мнение, то в вашем MVC меня смущает наличие main.go в каждом пакете, в которых находится немножко другое. Также странно читать поля типа
storage storage.Storage
, всё-таки это конкретное хранилище и было бы имхо лучше именовать по сущности, контроллер по use-case, пресентер по типу API.