Abstract pattern

Abstract pattern