The current implementation is awkward and hit walls when you try to overload initialize. Basically, the representation is evaluated in the class context where it should be in the the instance one.