wrap the basic functions