nowhere near compiling; still working out the low level module interface