most basic functions