Adding GenericRoot concept to identify generic implementation and ease their overrinding

Big House Cleaning in Agorava Extension