Creating Dynamic Recoil

How do I create dynamic recoil, such as instead of using viewpunch, your view still bumps up but where ever your crosshair is, thats where the bullet would be

You can make your FireBullets Dir the forward vector of EyeAngles + GetPunchAngle

How would you put all of those together? I cant seem to find a way to make it work

[editline]16th October 2016[/editline]

nvm I got it, Thank you <3