implement the correct interface.