Add channel communication instead of return values