avoid open-class. refinement is better even though it's experimental yet