Restructured the source and added composer.json.