apm patterns