pattern vs. custom