Added a few more modules and made the structure more clear.