implement true throttling