updated functions with descriptions