refactoring interface package