fleshed out init, prorgam creation