modeling its working