I asked a similar question recently and got a pretty good answer from /u/PapiriusCursor with some interesting sources.