diff --git a/@Viewer/Viewer.m b/@Viewer/Viewer.m
index 860032fd51f6369540590be3f36942085f75543f..bb38bccc21670ca4084a92f9eeef113711304101 100644
--- a/@Viewer/Viewer.m
+++ b/@Viewer/Viewer.m
@@ -132,7 +132,7 @@ classdef Viewer < handle
                     perm = [5,4,3,1,2];
             end
             
-            obj.slices = LF.split(permute(obj.data,perm));
+            obj.slices = LF.toSlices(permute(obj.data,perm));
             obj.statevec = false(1,5);
             obj.statevec(perm(4:5)) = true;
         end
diff --git a/join.m b/fromSlices.m
similarity index 78%
rename from join.m
rename to fromSlices.m
index 555da8d347672fdd33c7973da36fe2416ebe516a..afcac0f717127933bdeca10e747b7f74eb844dc5 100644
--- a/join.m
+++ b/fromSlices.m
@@ -1,9 +1,9 @@
-function data = join(slices,varargin)
-%JOIN Join lightfield slices into lightfield data
-%   data = join(slices)
-%   data = join(slices,dimsToSplit)
-%   data = join(slices,dimsToSplit,squeezeGrid)
-%   data = join(slices,dimsToSplit,squeezeGrid,squeezeSlices)
+function data = fromSlices(slices,varargin)
+%FROMSLICES Join lightfield slices into lightfield data
+%   data = fromSlices(slices)
+%   data = fromSlices(slices,dimsToSplit)
+%   data = fromSlices(slices,dimsToSplit,squeezeGrid)
+%   data = fromSlices(slices,dimsToSplit,squeezeGrid,squeezeSlices)
 
 validSplitsFcn = @(x) isnumeric(x)||islogical(x);
 defaultSplits = [0,0,0,1,1];
diff --git a/fromSubAps.m b/fromSubAps.m
index 64223565b28591d0003f63ceb03cf868a30291fb..238089f3f46b2a9e62462584f6d1c67c18df39f5 100644
--- a/fromSubAps.m
+++ b/fromSubAps.m
@@ -56,13 +56,13 @@ cellfun(@fill_frames,filenames,inds_u_v);
 frames = fill_empty(frames);
 
 % Join frames
-data  = LF.join(frames);
+data  = LF.fromSlices(frames);
 
 %
 switch ext
     case '.png'
         if ~isempty(frames_alpha)
-            alpha = LF.join(frames_alpha);
+            alpha = LF.fromSlices(frames_alpha);
         else
             alpha = ones('like',data);
         end
diff --git a/gradient.m b/gradient.m
index b1531998a64111bad0fd4886a8329278499ca8b1..160cd2c4c3de8a298f4c0f8b8d7c0e5b7db76f65 100644
--- a/gradient.m
+++ b/gradient.m
@@ -2,10 +2,10 @@ function [datax,datay] = gradient(data)
 %GRADIENT Summary of this function goes here
 %   Detailed explanation goes here
 
-frames = LF.split(data);
+frames = LF.toSlices(data);
 
 [framesx,framesy] = cellfun(@gradient,frames,'UniformOutput',false);
 
-datax = LF.join(framesx);
-datay = LF.join(framesy);
+datax = LF.fromSlices(framesx);
+datay = LF.fromSlices(framesy);
 end
\ No newline at end of file
diff --git a/read.m b/read.m
index 04cf196107c7f2b2475fe317d23bd3905f4a0620..81d8c5ded313fa0df55f4617745fa17b1469e6e7 100644
--- a/read.m
+++ b/read.m
@@ -18,7 +18,7 @@ padding  = p.Results.padding;
 frames = yuv.read(imgSize,imgRes,varargin{:});
 
 % Recover LF
-LFRec = LF.join(frames);
+LFRec = LF.fromSlices(frames);
 
 if padding
     LFRec = LF.unpad(LFRec,[imgSize,imgRes]);
diff --git a/toGIF.m b/toGIF.m
index b8504d1186e1d89c938fc15c705045f9a0c4fa81..4cdc43270367ed9cbff40454b67e3eff8c5c1aea 100644
--- a/toGIF.m
+++ b/toGIF.m
@@ -12,7 +12,7 @@ map = p.Results.map;
 DelayTime = p.Results.DelayTime;
 
 data = utils.recast(data,'uint8');
-frames = LF.split(data);
+frames = LF.toSlices(data);
 
 maps = cellfun(@(f) map,frames,'UniformOutput',false);
 
diff --git a/split.m b/toSlices.m
similarity index 80%
rename from split.m
rename to toSlices.m
index 300d7709c00c7cd3a9727973aaf43abfad2e6a4b..ca40bd04cdff14ce6f30b8b6e045dd1d133528d8 100644
--- a/split.m
+++ b/toSlices.m
@@ -1,9 +1,9 @@
-function slices = split(data,varargin)
-%SPLIT Split lightfield data into slices
-%   slices = split(data)
-%   slices = split(data,dimsToSplit)
-%   slices = split(data,dimsToSplit,squeezeGrid)
-%   slices = split(data,dimsToSplit,squeezeGrid,squeezeSlices)
+function slices = toSlices(data,varargin)
+%FRAMES Split lightfield data into slices
+%   slices = toSlices(data)
+%   slices = toSlices(data,dimsToSplit)
+%   slices = toSlices(data,dimsToSplit,squeezeGrid)
+%   slices = toSlices(data,dimsToSplit,squeezeGrid,squeezeSlices)
 
 validSplitsFcn = @(x) isnumeric(x)||islogical(x);
 defaultSplits = [0,0,0,1,1];
diff --git a/toSubAps.m b/toSubAps.m
index 33190866f6ab831667b7bd48a7bdcebd5bae00bd..0debde0224bec7f283280501ab74bf81ca6ff4e3 100644
--- a/toSubAps.m
+++ b/toSubAps.m
@@ -52,7 +52,7 @@ switch ext
         fun_write = @(frame,filename) imwrite(frame,fullfile(Dir,[filename,ext]));
 end
 
-frames = LF.split(data);
+frames = LF.toSlices(data);
 
 [X,Y] = ndgrid(1:size(frames,1),1:size(frames,2));
 X = X+shift; Y = Y+shift;
@@ -71,7 +71,7 @@ filenames = filenames(mask);
 switch ext
     case '.png'
         if ~isempty(alpha)
-            frames_alpha = LF.split(alpha);
+            frames_alpha = LF.toSlices(alpha);
             frames_alpha = frames_alpha(mask);
             cellfun(fun_write,frames,frames_alpha,filenames);
         else
diff --git a/write.m b/write.m
index 4ea6b1f6401c32e9f6096fac20d3f3316ebc9ed4..c31b48648b055e73c041812203b70dfe15e96a7d 100644
--- a/write.m
+++ b/write.m
@@ -27,7 +27,7 @@ if padding
 end
 
 % Change 5D LF to a collection of 2D frames
-frames = LF.split(LFRef);
+frames = LF.toSlices(LFRef);
 
 % Write frames as a YUV sequence
 yuv.write(frames,varargin{:});