Firefighters battle 3-alarm fire in South End