update package layout, split code into different files, update executable script, update dependencies