pattern component