now with boolean to run either normal way or deferred way