solving cases