implements #19, bestRoleFor()