fleshed out the attribute class