New modules.

Code base break down into different modules.