refactored application module system