add better attributes support