hsharder class now abstract