     //
     // start or resume the queue
     //
-    func run(completion: ClosureNoResultNext? = nil) {
+    public func run(completion: ClosureNoResultNext? = nil) {
         if completion != nil {
             hasCompletions = true
             completions += [completion!]

    //
    // skip the next task
    //
    func skip() {
        if tasks.count>0 {
            _ = tasks.removeAtIndex(0) //better way?
        }

//
// The task gets executed on a low prio queueu
//
public func +=~ (inout tasks: [TaskQueue.ClosureWithResultNext], task: TaskQueue.ClosureWithResultNext) {
    tasks += [{result, next in
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), {
            task(result, next)
