How do you ensure loose coupling between different modules in a large-scale application like Vergent LMS?