Added channel directions to improve type safety