changing result communication and helper functions