diff --git a/lzw.c b/lzw.c
index 167eef4dcf93540452dbd63cd7363eb617426228..da24888fed92c9c7c0e468ab8e7db41063012833 100644
--- a/lzw.c
+++ b/lzw.c
@@ -311,6 +311,7 @@ void init_lzw_parser()
 
 	H_RULE(LZW_remainingbits, h_many(h_bits(1, false))); //XXX: could validate that these bits are 0?
 	// XXX: p__take_n function to dynamically generate the rule needed to consume remaining bits?
+	// XXX: user data pointers (VDRULE, VADRULE, etc.)
 
 	H_VARULE(LZW_clear, h_choice(LZW_9bitlitspec, LZW_10bitlitspec, LZW_11bitlitspec, LZW_12bitlitspec, NULL)); //XXX: VARULE or AVRULE?
 	H_VRULE(LZW_eod, h_choice(LZW_9bitlitspec, LZW_10bitlitspec, LZW_11bitlitspec, LZW_12bitlitspec, NULL));
@@ -321,3 +322,12 @@ void init_lzw_parser()
 	p_lzwdata = LZW_data;
 }
 
+HParseResult* parse_lzw_data(const uint8_t* input, size_t length)
+{
+	return h_parse(p_lzwdata, input, length);
+}
+
+void set_LZW_context(LZW_context_T ctx)
+{
+	//XXX
+}