all basic functions added