--- a/mex/block_interface.h
+++ b/mex/block_interface.h
@@ -1,25 +1,41 @@
+/*
+ * This mex file serves as an object-like storage of data for the
+ * block processing framework. The data is made persistent between
+ * calls.
+ * */
+
 #include "mex.h"
 
 #define COMMAND_LENGTH 20
 
-struct biEntry;
+#define ARRAYLEN(x) ((sizeof(x))/(sizeof(*x)))
 
-typedef struct 
+/*
+ * Structure for holding attributes
+ * */
+typedef struct biEntry biEntry;
+struct biEntry 
 {
-char name[COMMAND_LENGTH];
-mxArray* var;
-void (*setter)(struct biEntry* obj,mxArray* in);
-mxArray* (*getter)(struct biEntry* obj);
-void (*reseter)(struct biEntry* obj, mxArray* in);
-}
-biEntry;
+   char name[COMMAND_LENGTH];
+   mxArray* var;
+   void (*setter)(biEntry* obj,const mxArray* in);
+   mxArray* (*getter)(biEntry* obj);
+};
 
 
-void defaultSetter(biEntry* obj,mxArray* in);
+/*
+ * Default setter and getter functions
+ * */
+void defaultSetter(biEntry* obj,const mxArray* in);
 mxArray* defaultGetter(biEntry* obj);
 
-
+/*
+ * General functions
+ * */
 biEntry* lookupEntry(const char* name, biEntry* dict, size_t dictLen);
+void resetAll(biEntry* dict, size_t dictLen);
+void clearAll(biEntry* dict, size_t dictLen);
+void clearAllWrapper();
 
 /*
  * Custom functions
@@ -28,3 +44,5 @@
 mxArray* getEnqBufCount(biEntry* obj);
 mxArray* getToPlay(biEntry* obj);
 void incPageNo();
+void pushPage(const mxArray* in);
+mxArray* popPage();