Feature/graviton event

type hinting the response would make it more clear to the consumer what is expected the $response to be. 

```
public function setResponse(Response $response){ [...] }
```