Use application modules to achieve a decoupled architecture