offer Abstract pattern