introduce interface Pack