up till hasAttr