Impruved protocols.
refactoring