added more subsystems + constructors