split into seprate scripts