adding tests and modifying commmunication