hook + classMethods