overhaul of entire origrestructured to include communication instead of static class vars