--- a/src/parser/tparser.h
+++ b/src/parser/tparser.h
@@ -24,24 +24,36 @@
+#ifndef __TPARSER_H__
+#define __TPARSER_H__
 /* Maximum size for an input token */
 #define PARSER_MAX_LINE 1000
  Data structure where the entire input file will be read 
+#ifndef FALSE
 #define FALSE 0
-#define TRUE  0
+#ifndef TRUE
+#define TRUE  1
 typedef struct {
     int width;
     int height;
     int projection;
-    char *projectionParms;
+    int projectionParmsCount;
+    float projectionParms[PANO_PARSER_MAX_PROJECTION_PARMS];
+    char *projectionParmsString;
     char *projectionName;
     float fHorFOV;
     char *outputFormat;
@@ -57,16 +69,16 @@
     float roll;
     float coef[7]; // a, b, c, d, e       , g, t
     char *name;
-    int cropType ;
-    int cropArea[4];
-    int morphToFit;
+    char cropType ; // it can be 'S' or  'C'
+    int cropArea[PANO_PARSER_COEF_COUNT]; // the rectangle to crop to
+    int morphToFit;  // true if morph to fit
     // pointers to variable if they are used.
     // For the sake of simplicity they start at 1, if they are zero they are unused
     int fHorFOVIndex;
     int yawIndex;
     int pitchIndex;
     int rollIndex;
-    int coefIndex[7]; // a, b, c, d, e       , g, t
+    int coefIndex[PANO_PARSER_COEF_COUNT]; // a, b, c, d, e       , g, t
 }  pt_script_image;
 typedef struct {
@@ -91,12 +103,40 @@
     pt_script_optimize optimize;
 }  pt_script;
-pt_script *Read_Script(char *fileName);
+pt_script *panoScriptParse(char *filename, int deferenceVariables);
+void panoScriptDispose(pt_script **scriptVar);
+void panoScriptDump(pt_script *script);
+// Accessors to the data structures above...
+// they  are the preferred way to access the data in them
+float panoScriptGetImageCoefA(pt_script_image *pImage);
+float panoScriptGetImageCoefB(pt_script_image *pImage);
+float panoScriptGetImageCoefC(pt_script_image *pImage);
+float panoScriptGetImageCoefD(pt_script_image *pImage);
+float panoScriptGetImageCoefE(pt_script_image *pImage);
+float panoScriptGetImageSheerX(pt_script_image *pImage);
+float panoScriptGetImageSheerY(pt_script_image *pImage);
+int panoScriptGetImageCropType(pt_script_image *pImage);
+int panoScriptGetImageMorphToFit(pt_script_image *pImage);
+int panoScriptGetInputImagesCount(pt_script *script);
+int panoScriptGetOutputImagesCount(pt_script *script);
+pt_script_image *panoScriptGetInputImage(pt_script *script, int i);
+pt_script_image *panoScriptGetOutputImage(pt_script *script, int i);
+int panoScriptGetPanoProjection(pt_script *script);
+int panoScriptGetPanoWidth(pt_script *script);
+int panoScriptGetPanoHeight(pt_script *script);
+float panoScriptGetPanoHFOV(pt_script *script);
+float panoScriptGetPanoParmsCount(pt_script *script);
+float panoScriptGetPanoParm(pt_script *script, int index);
+char *panoScriptGetPanoOutputFormat(pt_script *script);
+int panoScriptGetImageProjection(pt_script_image *pImage);
+float panoScriptGetImageHFOV(pt_script_image *pImage);
+float panoScriptGetImagePitch(pt_script_image *pImage);
+float panoScriptGetImageYaw(pt_script_image *pImage);
+float panoScriptGetImageRoll(pt_script_image *pImage);
-void TokenBegin(char *t) ;
-int  GetNextChar(char *b, int maxBuffer) ;
-void Parse_Error(char const *errorstring, ...) ;