Abstaract Generator