interface를 활용해 refactoring 완료