changed channel retrieval to work without side-effects (create if not
existing)