Some cleanup.
Reworking Interface. Added an initialize function that takes another program.