incomplete functions