added pure attribute