reduce interface