Refactored to PSR-4, use composer