refactored modules to separate reader/writer/converter and runnable