Changed Grammar, All(know) Bugs involved in the generic implementation corrected