implemented deal method