implement requires