it took me 5 years to learn this (i'll teach you in 30mins)