Added `tap` in order to tap into promise chains. Added tests for tap.