initialisation and rx/tx functions