refactored timeout parameter