this should be good and helpful. and hopefully some answers.