Completely changed ALL THE CODE!
Added Composer lock file and require-dev dependencies
Added tests and accompanying fixes