Enzymes can use cofactors as ‘helper molecules’. Coenzymes are referred to those non-protein molecules that bind with enzymes to help them fulfill their jobs. Mostly they are connected to the active site by non-covalent bonds such as hydrogen bond or hydrophobic interaction. But sometimes a covalent bond can also form between them. For example, the heme in cytochrome C is bound to the protein through thioester bond. In some occasions, coenzymes can leave enzymes after the reaction is finished. Otherwise, they permanently bind to the enzyme. Coenzyme is a broad concept which includes metal ions, various vitamins and ATP. If an enzyme needs coenzyme to work itself, it is called an apoenzyme. In fact, it alone cannot catalyze reactions properly. Only when its cofactor comes in and binds to the active site to form holoenzyme does it work properly.
One example of the coenzyme is Flavin. It contains a distinct conjugated isoalloxazine ring system. Flavin has multiple redox states and can be used in processes that involve the transfer of one or two electrons. It can act as an electron acceptor in reaction, like the oxidation of NAD to NADH, to accept two electrons and form 1,5-dihydroflavin. On the other hand, it can form semiquinone(free radical) by accepting one electron, and then converts to fully reduced form by the addition of an extra electron. This property allows it to be used in one electron oxidation process.