revised section 2. It should be almost done