Just to clarify, that static method will have the same #ifs, but the goal is to remove the #ifs from the backend code, and move it to classes in charge of dealing with those differences.