Added variable generator and other architechtural improvements