deduction design refactored