Refactor

This refactor do not change a lot the code but split it in different module.
An abstract driver class have been added (I plan a second round of refactor and I want to use it for all driver)
Also the support of the pos customer display have been added