Modified Async thread class to use: \
    1- Enums for its state; \
    2- Function look ups for its run functinality.