public void viewTicket(int ticketID) {

        //=====================  Local Data  ======================//
        Ticket ticket;  //ticket to view details from

        try {
            ticket = tickets.fetch(ticketID);
        } catch (Exception e) {
            System.out.println("Unable to display info for this ticket.");
            return;
        }

        //build table based on ticket info
        ArrayList<ArrayList<String>> table = new ArrayList<>();

        //general info
        ArrayList<String> row1 = new ArrayList<>();
        row1.add("Ticket ID:");
        row1.add(Integer.toString(ticket.getID()));
        table.add(row1);
        ArrayList<String> row2 = new ArrayList<>();
        row2.add("Date Created:");
        row2.add(ticket.getDateCreatedString().toString());
        table.add(row2);
        ArrayList<String> row3 = new ArrayList<>();


        //assigned technicians
        List<Technician> techs = null;
        try {
            techs = ticketTechnicians.fetchTechniciansByTicketID(ticketID);
        } catch (Exception e) {
            //TODO improve error handling here in future release
            System.out.println("Unable to display info for this ticket.");
            return;
        }

        //if there are techs to add, add them to the list
        if (techs != null && !techs.isEmpty()) {
            //make first row of tech info have row title
            ArrayList<String> row4 = new ArrayList<>();
            row4.add("Assigned Technicians:");
            row4.add(techs.get(0).getUsername());
            table.add(row4);

            for (int i = 1; i < techs.size(); i++) {
                row4 = new ArrayList<>();
                row4.add("");
                row4.add(techs.get(i).getUsername());
                table.add(row4);
            }
        }

        //print out title
        System.out.println(head("Ticket Info:"));

        //print out description
        System.out.println(ticket.getTitle());

        //print table out
        System.out.println(toTable(table, false));

        //print out ticket entries - David E: ================================//
        Entry entry;

        // entries for ticket:
        List<Entry> entriesList = null;
        try {
            entriesList = entries.fetchAllFromTicket(ticketID);
        } catch (Exception e) {
            //TODO improve error handling here in future release
            System.out.println("Unable to display entries for this ticket.");
            return;
        }

        if (entriesList.isEmpty()) {
            System.out.println("This Ticket has no entries.");
        } else {
            System.out.println("Entries: ");
        }

        // One table for every entry: 
        for (int i = 0; i < entriesList.size(); i++) {
            entry = entriesList.get(i);
            //build a table based on entries
            ArrayList<ArrayList<String>> entryTable = new ArrayList<>();
            ArrayList<String> entryRow1 = new ArrayList<>();
            entryRow1.add("Entry ID:");
            entryRow1.add(Integer.toString(entry.getID()));
            entryTable.add(entryRow1);
            ArrayList<String> entryRow2 = new ArrayList<>();
            entryRow2.add("Creation Date:");
            entryRow2.add(entry.getCreationDate());
            entryTable.add(entryRow2);
            ArrayList<String> entryRow3 = new ArrayList<>();
            entryRow3.add("Creator:");
            entryRow3.add(entry.getCreator());
            entryTable.add(entryRow3);
            ArrayList<String> entryRow4 = new ArrayList<>();
            entryRow4.add("Text:");
            entryRow4.add(entry.getText());
            entryTable.add(entryRow4);

            //print the entryTable out
            System.out.print(toTable(entryTable, false));
        }

    } // End of viewTicket.