abstract pattern