reduce some functions