base communtion functions are done