add Abstract Pattern