I'd recommend two excellent answers by our own /u/Georgy_K_Zhukov that should answer most of your questions.