added data processing