Building Automated Programs