complete chan API