public VRCForm()
    {
        this.fields.add(VRCCommonFields.firstname);
        this.fields.add(VRCCommonFields.lastname);
        this.fields.add(VRCCommonFields.timestamp);
        this.fields.add(VRCCommonFields.reason);
        
       this.layoutMgr = new BoxLayout(this, BoxLayout.Y_AXIS);
        this.setLayout(this.layoutMgr);
        
        
        for (final VRCField<?> f : fields)
        {
            this.add(f);
        }
        
        this.submitButton = new JButton("Submit");
        this.clearButton = new JButton("Clear Form");
        this.buttonPanel = new JPanel();
        this.buttonPanel.add(this.submitButton);
        this.buttonPanel.add(this.clearButton);

        this.add(this.buttonPanel);

        this.clearButton.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                for (final VRCField<? extends Component> field : fields)
                {
                    field.clearValue();
                }
            }
        });

        this.submitButton.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                final File f = new File("log.csv");
                try
                {
                    System.out.println(f.createNewFile());

                    final FileOutputStream fos = new FileOutputStream(f, true);
                    final OutputStreamWriter out = new OutputStreamWriter(fos);
                    out.write(VRCForm.this.getContents());
                    out.flush();
                    out.close();
                    fos.close();
                    clearButton.doClick();
                    
               	 JLabel response = new JLabel("Thanks for coming to the VRC!");
                    JOptionPane.showMessageDialog(null, response, "Confirmation",
                    		JOptionPane.PLAIN_MESSAGE); setVisible(true); //display confirmation message
                }
                catch (final IOException ex)
                {
                    // TODO Auto-generated catch block
                    ex.printStackTrace();
                }
            }
        });
    }