included some functions