Adding passthrough of timeout, and attach points in the Run method. Cleaning up timer code. Setting default to 30 seconds, and adding debugging to random numbers ample