Unfinished broadcast implementation, refactor