Refactored application into several separate modules.