This is an attempt to combine all the modules into one coherent program