complete basic functions, havnt tested yet