basic functions has been completed