added data normalization part