Use Model Object instead of StdClass for anonymous
Fully rewrite dependency injection.
Fix space.
Update test to use the new dependency injection and handle error connection.