hardness implemented