updated as per client needs