break report() into two functions