open struct that does not invalidate ruby's method cache every time it is instantiated