more cases, not elegant though :(