public function callProgram($newInputParams = array())
    {
        $pgmInfo = $this->getObjInfo();
        $pgmName = $pgmInfo['obj'];
        $lib =     $pgmInfo['lib'];
        $func =    $pgmInfo['func'];
        $options = array();

        // if a service program subprocedure (function) is defined
        if ($func) {
            $options['func'] = $func;
        }

        $pgmCallOutput = $this->getConnection()->PgmCall($pgmName,
            $lib,
            $newInputParams,
            // null for returnvalue var because old toolkit doesn't handle return values (as far as we can tell)
            null,
            $options);

        // TODO handle errors
        $conn = $this->getConnection();
        if ($pgmCallOutput) {
            $outputParams = $conn->getOutputParam($pgmCallOutput);
            $this->setPgmOutput($outputParams);
            return true;
        } else {
            return false;
        }
    }