functions partly relocation