woo pub! is a fn now, but sub! is kept as a macro. need to figure out how to do reference counting on the code generated
fixed