update composer and added --prefer-source
add exception tests
add coverage in gitignore...