remove complexity of getting attribute name at get, uses metaclass instead
move concrete class creation
add partial impl of validator