Added request object

 It will make it easier to switch engines and it feels better. need to write unit tests. One test is failing have to make sure that it's not problem with the test