Refactor everything and add an integration test case
Test against multiple versions of Doctrine
Fix order of methods