Complete implementations