Fully implement interface