Pattern Systems