added all possible cases