reservation might be nil