reorganize and restyle  to be closer to PSR compliant