completion of the basic functions