added abstract baseClass