         }
     }
     
-    func dissolve(srcTrack:AVMutableCompositionTrack, dstTrack:AVMutableCompositionTrack, range:CMTimeRange)->[AVMutableVideoCompositionLayerInstruction]
+    private func dissolve(srcTrack:AVMutableCompositionTrack, dstTrack:AVMutableCompositionTrack, range:CMTimeRange)->[AVMutableVideoCompositionLayerInstruction]
     {
         let src = AVMutableVideoCompositionLayerInstruction(assetTrack: srcTrack)
         src.setOpacityRamp(fromStartOpacity: 1.0, toEndOpacity: 0.0, timeRange: range)

        return (videoComposition, mix)
    }
    
    func getTransitionInstuctions(srcTrack:AVMutableCompositionTrack, dstTrack:AVMutableCompositionTrack, range:CMTimeRange, transition:VideoTransition)->[AVMutableVideoCompositionLayerInstruction]
    {
        switch transition
        {


class MovieEditor
{
    private(set) var asset:AVAsset!
    private(set) var insertClips:[CMTimeRange]!
    
    private var assetComposition:AVMutableComposition!
    private var transitionClips:[CMTimeRange]!
