added theory part