majorly rewrite and revamp the script to support runnign parts at a time