In which case the base handler makes sense only if you plan to run the ES and the Solr Implementations (or any other additional implementation) at the same time and be able to go back/forth, otherwise you'd just re-implement the methods in a branch and merge/push when the hardware is ready.