Issue #2: Restructured construction and initialization of back-end code generators (cleaner code)