pattern recognization