Make timeout an optional parameter