change cs to return a function, the incident energy is take as an argument