added some functions2