Theory and Practice of Mixing: A Review