add request lifecycle