refactored inferred mapping