data handling added