adds ability to define an idle timeout