begin implementing the timeout feature