add boolean variables to specify when various modules are used or not.
beta implement various modes support (with/without online,cache,supervisor).
redo callback refactoring try.