Under § 160A-312, cities have the authority to own, maintain, and operate “public enterprises” inside or outside their corporate limits, and to protect and regulate such public enterprises by “adequate and reasonable rules.” Stormwater management programs “designed to protect water quality by controlling the level of pollutants in, and the quantity and flow of, stormwater” are explicitly included in the definition of “public enterprises” over which cities have such authority. § 160A-311(10). Under § 160A-314, cities have the power to fix and enforce rates for public enterprises; however, this statute imposes certain limitations with regard to stormwater management programs. For instance, before establishing or revising a rate schedule, the city must hold a public hearing on the matter. § 160A-314(a)(a1)(1). Any fees or rates must be applied throughout the city (although the amount of the fee may vary according to the property served), and the city is prohibited from making a profit on the program. § 160A-314(a)(a1)(2). Finally, where two or more units of local government operate separate stormwater management programs in the same area of a county, the units may not charge separate fees for the services. § 160A-314(a)(a1)(3).