should implement interface?