move more specific case first