improve pattern