implement class method