framework for module IO, now need to define a language for input