public override string start()
        {
            c = account.getCourse();
            nextYear = c.getNextStageID();

            //  Display new stage details and ask for optional
            StageDetailsScreen screen = new StageDetailsScreen(c);

            //  Pick Optional
            if (screen.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                //  Set both mandatory and chosen optional subjects
                this.subjects = screen.getSelectedSubjects();

                //  Calculate fees, ask for payment and pay

                PaymentScreen studentFees = new PaymentScreen(subjects);
                if(studentFees.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    StagePayment p = new StagePayment();
                    p.setAmount(studentFees.getTotalCost());

                    registerStage(p);
                    return "ok";
                }
            }
            return null;
        }
        public override string start()
        {
            c        = account.getCourse();
            nextYear = c.getNextStageID();

            //  Display new stage details and ask for optional
            StageDetailsScreen screen = new StageDetailsScreen(c);

            //  Pick Optional
            if (screen.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                //  Set both mandatory and chosen optional subjects
                this.subjects = screen.getSelectedSubjects();

                //  Calculate fees, ask for payment and pay


                PaymentScreen studentFees = new PaymentScreen(subjects);
                if (studentFees.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    StagePayment p = new StagePayment();
                    p.setAmount(studentFees.getTotalCost());

                    registerStage(p);
                    return("ok");
                }
            }
            return(null);
        }