diff --git a/.gitignore b/.gitignore
index c22c879e19eab7b1855b9b12820d9408053da6d6..9f3689c7f9527055c8826f646168471af2f97bb1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
 
 bin/
+
+data/
diff --git a/@HEVC/HEVC.m b/@HEVC/HEVC.m
new file mode 100644
index 0000000000000000000000000000000000000000..97c26ab16b29dbab1bd6e45df8c7df6a167226de
--- /dev/null
+++ b/@HEVC/HEVC.m
@@ -0,0 +1,37 @@
+classdef HEVC
+    %HEVC Summary of this class goes here
+    %   Detailed explanation goes here
+    
+    properties
+        params
+        extraParams    
+    end
+    
+    methods
+        function obj = HEVC(varargin)
+            p = inputParser; p.KeepUnmatched = true;
+            
+            p.addParameter('ConfigFile'       ,'Intra.cfg',@ischar);
+            p.addParameter('InputFile'        ,'ref.yuv'  ,@ischar);
+            p.addParameter('BitstreamFile'    ,'str.hevc' ,@ischar);
+            p.addParameter('ReconFile'        ,'rec.yuv'  ,@ischar);
+            p.addParameter('LogFile'          ,'log.rtf'  ,@ischar);
+            p.addParameter('SourceWidth'      ,'512'      ,@ischar);
+            p.addParameter('SourceHeight'     ,'512'      ,@ischar);
+            p.addParameter('InputBitDepth'    ,'8'        ,@ischar);
+            p.addParameter('InputChromaFormat','420'      ,@ischar);
+            p.addParameter('FrameRate'        ,'60'       ,@ischar);
+            p.addParameter('FrameSkip'        ,'0'        ,@ischar);
+            p.addParameter('FramesToBeEncoded','1'        ,@ischar);
+            p.addParameter('QP'               ,'32'       ,@ischar);
+            % Add additional parameters here
+            
+            p.parse(varargin{:});
+            obj.params = p.Results;
+            obj.extraParams = p.Unmatched;
+        end
+        
+        encode(obj,varargin)
+    end
+end
+
diff --git a/@HEVC/encode.m b/@HEVC/encode.m
new file mode 100644
index 0000000000000000000000000000000000000000..0d45b1d747546605e7e18b026579a655dde18910
--- /dev/null
+++ b/@HEVC/encode.m
@@ -0,0 +1,8 @@
+function encode(obj,varargin)
+%ENCODE Summary of this function goes here
+%   Detailed explanation goes here
+
+HEVC.encode(obj.params,obj.extraParams,varargin{:});
+
+end
+
diff --git a/encode.m b/encode.m
index 5a504018cfe5aa662ca17678ffc138663269241f..6ea8e2902d62caab8fc0982c0c392d21f58006f8 100644
--- a/encode.m
+++ b/encode.m
@@ -9,7 +9,7 @@ p = inputParser; p.KeepUnmatched = true; p.StructExpand = true;
 
 p.addParameter('ConfigFile'       ,'Intra.cfg',@ischar);
 p.addParameter('InputFile'        ,'ref.yuv'  ,@ischar);
-p.addParameter('BitstreamFile'    ,'str.hevc' ,@ischar);
+p.addParameter('BitstreamFile'    ,'bit.hevc' ,@ischar);
 p.addParameter('ReconFile'        ,'rec.yuv'  ,@ischar);
 p.addParameter('LogFile'          ,'log.rtf'  ,@ischar);
 p.addParameter('SourceWidth'      ,'512'      ,@ischar);
@@ -19,7 +19,7 @@ p.addParameter('InputChromaFormat','420'      ,@ischar);
 p.addParameter('FrameRate'        ,'60'       ,@ischar);
 p.addParameter('FrameSkip'        ,'0'        ,@ischar);
 p.addParameter('FramesToBeEncoded','1'        ,@ischar);
-p.addParameter('QP'               ,'32'       ,@ischar);
+p.addParameter('QP'               ,'30'       ,@ischar);
 % Add additional parameters here
 
 p.parse(varargin{:});