several functions' definition