please add description to all functions