CLN: use pattern rules instead of suffixes