prototype for identify the basic functions needed