Add module and thinker interfaces
Add IInputOutput