added moduleDesignPattern and some cleanUp