You should note that implementing the interface is optional