AppSupervisor and it's children refactored to get parameters lazily not at startup.
AppSupervisor refactored to use compiler to manage compilation.
Refactoring & bullet proofing.
Refactoring to make the test faster.
Refactoring to make the test faster.