Is my grammar correct and context free?

I have this language

$ L = \{a^{n}b^{3n}c^{2m} : m,n \ge 1\}$ .

I have to determine a free context grammar that generates L. Looks easy BUT i have a question about the grammar I found. First things first, this is my grammar:

$ S \Rightarrow BC$

$ B \Rightarrow aBbbb\ \backslash \ abbb $

$ C \Rightarrow Ccc \ \backslash \ cc$

Looks easy and clean to me. I already tested it with strings of different lengths and seems working just fine. Also it does indeed create only strings contained in L and no other strings.

My question is:

This is the first time I generate a grammar without any production containing $ S$ itself (An example would be adding $ S \Rightarrow B$ and I would solve my problem, because B generates only $ a$ ‘s and $ b$ ‘s and the number of this chars is dipendent between one another but indipendent with the number of $ c$ ‘s inside the string).

Recursively speaking, this works just fine but using $ S$ would induce me to create a noncontracting language (because I’d be forced to invert some Non Terminals in order to produce both $ a$ ‘s and $ b$ ‘s correctly if something is wrong in my grammar). Is this way of creating grammars correct? Can I describe what I wrote as an actual “grammar”? Is it context free?

Also, can I actually derivate $ a$ through $ B$ without a nonterminal $ A$ and without generating it with the $ S$ production?