basic functions finished, need error check and own system call