refactored to composer and psr2