Improving attributes

I've splited the attribute setter and getter definitions in smaller files.
This new structure also make it easier to add new features like an attribute default value, which i'm willing to implement.