add pattern interface