Changed root class to abstract