refactor and add autoloading with composer
fix conflict