introduce interface