refactored deal method -> orthogonal