added more descriptions for function use