refactored communicators