Here is an experimental look at how modules will have to be as per [#131]