basic functions are now working