Added ability to pass 0 for duration to prevent timeout
Added null check to inital timeout to prevent setting timer if null