added feature: multiple channels