allow to control the type of core.async channels used