Refactoring to enable coercion