added an initial list of necessary functions