introduction theory and code updated