updated appraoch