Refactoring implement interface