A long introduction....