[refactoring] revise interface