some functions added