complete required fucntions